/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hormigas_packettracker;

import hormigas_packettracker.beans.Pedido;
import hormigas_packettracker.config.Reloj;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;

/**
 *
 * @author Shadow
 */
public class Dispatcher {
    
    private static ArrayList<Pedido> _pedidos = new ArrayList<>();

    static void leerEventosDia() throws Exception {
        BufferedReader r = new BufferedReader(new FileReader("C:\\Users\\Shadow\\Desktop\\packettracker\\ArchPrueba\\dat20120517.txt"));
        int i = 0;
        String line;
        String[] toks;
        int x = 0, y = 0, nPaq = 0, idCliente = 0, tiempoEntrega = 0;
        ArrayList<Pedido> grafo = new ArrayList<>();
        while (true) {
            line = r.readLine();
            if (line == null) {
                break;
            }
            toks = line.split(",");
            String hora = toks[0];
            x = Integer.parseInt(toks[1]);
            y = Integer.parseInt(toks[2]);
            nPaq = Integer.parseInt(toks[3]);
            idCliente = Integer.parseInt(toks[4]);
            tiempoEntrega = Integer.parseInt(toks[5]);
            Pedido pedido = new Pedido(x,y,nPaq,tiempoEntrega,hora);
            if (nPaq > 0) //Se pone solo para evitar problemas del archivo generado
            grafo.add(pedido);
        }
        _pedidos.addAll(grafo);
    }

    static ArrayList<Pedido> siguientesPedidos() {
        Reloj reloj = Reloj.getInstancia();
        ArrayList<Pedido> pedidosSiguientes = new ArrayList<>();
        for(Pedido pedido:_pedidos){
            if (pedido.getHoraPedido()*60 + pedido.getMinutoPedido() <= reloj.getHora()*60 + reloj.getMinuto()){
                pedidosSiguientes.add(pedido);
            }
            else 
                break;
        }
        _pedidos.removeAll(pedidosSiguientes);
        return pedidosSiguientes;
    }
    
    static boolean finPedidos(){
        return _pedidos.isEmpty();
    }

    static ArrayList<Pedido> getColaPedidos() {
        return _pedidos;
    }
}
